/**
 * Created by 123 on 2017/11/30.
 */
var seach_user = null
var layer;
$(function () {
    layer = layui.layer;
    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的点击事件
    // var oButtonInit = new ButtonInit();
    // oButtonInit.Init();
    // $("#btn_query").click(function () {
    //     $("#tb_departments").bootstrapTable('destroy');
    //     oTable.Init();
    // });
    $('#btn_user').click(function () {
        seach_user = $('#seach_user').val()
        $("#user_table").bootstrapTable('destroy');
        oTable.Init();
    })

    $('#reset').click(function () {
        var val = $('#user_table').bootstrapTable("getSelections");
        if (val == 0) {
            layer.msg('请选择一个用户！！！', {icon: 5})
            return false

        }
        var data = JSON.stringify(val);
        var user = eval('(' + data + ')');
        var identity = user[0].id;
        if (identity == 1) {
            layer.msg('该用户不可以重置密码！！！', {icon: 5})
            return false
        } else {
            $("#text_reset").val(user[0].id)
        }
    })
    $('#btn_reset').click(function () {
        $('#resetpass').modal('hide');
        $.ajax({
            url: '/rest_pass',
            method: 'get',
            data: 'id=' + $("#text_reset").val(),
            success: function (data) {
                if (data == 1) {
                    $("#user_table").bootstrapTable('refresh');
                    layer.msg("重置成功！密码为用户名", {icon: 6})
                } else {
                    layer.msg('重置失败！！！', {icon: 5})
                }
            }

        })


    })

});

var TableInit = function () {

    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $('#user_table').bootstrapTable({
            url: '/userlist_data',                  //请求后台的URL（*）
            method: 'get',                     //请求方式（*）
            toolbar: '#toolbar',                //工具按钮用哪个容器
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            showRefresh: true,
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber: 1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 25],        //可供选择的每页的行数（*）
            clickToSelect: true,
            exportTypes: ['txt', 'doc', 'excel',],  //导出文件类型
            showExport: true,                     //是否显示导出
            exportDataType: "basic",              //basic', 'all', 'selected'.
            // detailView: false,是否显示父子表
            paginationLoop: false,               //是否显示父子表
            columns: [
                {
                    radio: true
                },
                {
                    field: 'id',
                    visible: false,

                },
                {
                    align: 'center',
                    title: '编号',
                    width: 5,
                    formatter: function (value, row, index) {
                        return index + 1;
                    }
                }, {
                    field: 'username',
                    align: 'center',
                    title: '用户名',

                }, {
                    field: 'identity',
                    align: 'center',
                    title: '用户身份',
                    formatter: function (data) {
                        return data == 1 ? '管理员' : '普通用户'

                    }
                }, {
                    field: 'email',
                    align: 'center',
                    title: '邮箱'
                }, {
                    field: 'tel',
                    align: 'center',
                    title: '电话'
                }
            ]
        });
    };


    //删除用户
    $("#user_delete").click(function () {
        var val = $('#user_table').bootstrapTable("getSelections");
        if (val == 0) {
            layer.msg("请选择一个用户！", {icon: 5})
            return false

        }
        var data = JSON.stringify(val);
        var user = eval('(' + data + ')');
        var identity = user[0].id;
        if (identity == 1) {
            layer.msg("该用户不可以删除！", {icon: 5})
            return false
        } else {
            $("#text_user_id").val(user[0].id)
        }


    });
    $('#btn_delete').click(function () {
        $.ajax({
            url: '/deleteuser/',
            method: 'get',
            data: 'id=' + $("#text_user_id").val(),
            beforeSend: function () {
                $('#deleteModal').modal('hide');
            },
            success: function () {
                layer.msg("删除成功", {icon: 6})
                $("#user_table").bootstrapTable('refresh');
            },
            error: function () {
                layer.msg("遇到问题了", {icon: 5})
            }
        })

    })
    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset,  //页码
            seachuser: seach_user,
        };
        return temp;
    };
    return oTableInit;
};

$(function () {
    $('#addUserForm').bootstrapValidator({
        message: 'This value is not valid',
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            username: {
                validators: {
                    notEmpty: {
                        message: '用户名不能为空',
                    },
                    stringLength: {
                        /*长度提示*/
                        min: 5,
                        max: 20,
                        message: '用户名长度必须在5位到20之间'
                    }, /*最后一个没有逗号*/
                    regexp: {
                        /* 只需加此键值对，包含正则表达式，和提示 */
                        regexp: /^[a-zA-Z0-9]+$/,
                        message: '只能是数字和字母'
                    },
                    remote: {
                        url: '/check_username',
                        type: 'GET',
                        data: function () {
                            return {
                                username: $("#username").val(),
                            }
                        },
                        message: '该用户名已存在！',
                        delay: 1000
                    },
                }
            },
            email: {
                validators: {
                    emailAddress: {
                        message: '请输入正确的邮件地址如：123@qq.com'
                    }
                }
            },
            pass: {
                validators: {
                    notEmpty: {
                        message: '密码不能为空'
                    },
                    stringLength: {
                        /*长度提示*/
                        min: 6,
                        max: 30,
                        message: '密码长度必须大于6位'
                    }/*最后一个没有逗号*/,
                    regexp: {
                        /* 只需加此键值对，包含正则表达式，和提示 */
                        regexp: /^[a-zA-Z0-9_\.]+$/,
                        message: '只能是数字和字母_.'
                    },
                }
            },
            tel: {
                validators: {
                    stringLength: {
                        min: 11,
                        max: 11,
                        message: '请输入11位手机号码'

                    },
                    regexp: {
                        regexp: /^1[3|5|8]{1}[0-9]{9}$/,
                        message: '请输入正确的手机号码'
                    }
                }
            },
        }
    });

    $('#addUserBtn').click(function () {
            $("#addUserForm").data("bootstrapValidator").validate();
            if (!$("#addUserForm").data("bootstrapValidator").isValid()) {
                return false
            }
            $.ajax({
                url: '/adduser/',
                method: 'post',
                data: $("#addUserForm").serialize(),
                beforeSend: function () {
                    $('#addUserModal').modal('hide');
                },
                success: function (result) {
                    if (result == 1) {
                        $("#user_table").bootstrapTable('refresh');
                        layer.msg("添加成功！", {icon: 6})
                        $("#username").val("")
                        $("#pass").val("")
                        $("#email").val("")
                        $("#tel").val("")
                    } else {
                        layer.msg("添加失败！", {icon: 5})
                    }
                }

            })
            $("#addUserForm").data("bootstrapValidator").resetForm();
        }
    )

    //修改用户
    $("#btn_edit").click(function () {
        var val = $('#user_table').bootstrapTable("getSelections");
        if (val.length <= 0) {
            layer.msg("请选择一个用户！", {icon: 5})
            return false
        }
        var data = JSON.stringify(val);
        var user = eval('(' + data + ')');
        if (user.length != 0) {
            $("#update_show_name").html(user[0].username)
        }
        var identity = user[0].identity;
        if (identity == 1) {
            layer.msg("该用户不可以修改！", {icon: 5})
            return false
        }
        $("#updateusername").val(user[0].username);
        $("#updatetel").val(user[0].tel);
        $("#upuser_id").val(user[0].id);
        $("#updateemail").val(user[0].email);
    });


});
$(function () {
    $('#updateUserBtn').click(function () {
        // $("#updateUserForm").data("bootstrapValidator").validate();
        // if (!$("#updateUserForm").data("bootstrapValidator").isValid()) {
        //     return false
        // }

        $.ajax({
            url: '/update_user/',
            method: 'GET',
            data: 'user_id=' + $('#upuser_id').val() + '&email=' + $('#updateemail').val() + '&tel=' + $('#updatetel').val(),
            beforeSend: function () {
                $('#updateUserModal').modal('hide');
            },
            success: function (data) {
                if (data == 1) {
                    $("#user_table").bootstrapTable('refresh');
                    layer.msg("修改成功！", {icon: 6})
                } else {
                    layer.msg("修改失败！", {icon: 5})
                }
            }
        })


    })
})
